The present invention relates to the field of Internet and wide-area networking technology. Specifically, the present invention relates to the storage and delivery of information over the Internet and using Internet technologies.
The World Wide Web (the Web) represents all of the computers on the Internet that offer users access to information on the Internet via interactive documents or Web pages. Web information resides on Web servers on the Internet or within company networks. Web client machines running Web browsers or other internet software can access these Web pages via a communications protocol known as HyperText transport protocol (HTTP). With the proliferation of information on the Web and information accessible in company networks, it has become increasingly difficult for users to locate and effectively use this information. As such, the mode of storing, delivering, and interacting with data on the Internet, and the Web in particular, has changed over time.
FIG. 1A illustrates a typical Internet configuration comprising client 100 and content provider 102 coupled via the Internet. The content provider may include a media company, a consumer service, a business supplier, or a corporate information source inside the company""s network.
The use of information within a wide-area network such as the Internet poses problems not usually experienced in smaller, local-area networks. The latency of the Internet produces delays that become the performance bottleneck in retrieving information. Clients may be connected to the network only part of the time, but still want access to information from their local platform that was retrieved from the content provider prior to being disconnected. The granularity and independence of the objects in a wide-area network, particularly the Internet, make the task of aggregating them more difficult.
The use of client and intermediate caching of the content provider information may alleviate some of the problems of the wide-area network interactions. Certain implementations today perform this caching on behalf of the client, but sacrifice data timeliness and do not address performance problems because they must validate their caches in single operations over the network.
FIG. 1A also illustrates the typical Internet configuration of client-to-content-provider interaction. Subsequent to connecting to the Internet, client 100 will generally request objects from the content provider 102. The client must locate the information, often through manual or automatic searches, then retrieve the data through the client.
When searching for the data initially, this xe2x80x9cpullxe2x80x9d model provides great utility in locating information. Implicit in the model, however, is that the client machine has the responsibility for finding and downloading data as desired. The user is faced with the problem of having to scour the Web for various information sites that may be of interest to him or her. Although this model provides a user with a large degree of flexibility in terms of the type of information that he or she would like to access each time he or she connects to the Internet, there is clearly a downside to the model in that the user is forced to constantly search for information on the Internet. Given the exponential rate of growth of data on the Internet, this type of searching is becoming increasingly cumbersome.
While the pull model is effective for finding information, once a user has found an information sourcexe2x80x94a location from which subsequent information of interest to the user will be distributedxe2x80x94he or she must continue to check for new information periodically. In the xe2x80x9cpullxe2x80x9d model, the server is inherently passive and the client does all the work of initiating requests. If the server has new information of interest to the client, the server has no method of delivering either the information or a notification to the client that the information exists. The content provider cannot, in the pull model, provide an xe2x80x9cinformation servicexe2x80x9d where active server information is identified, then passed to the client in terms of some kind of notification.
It is therefore an object of the present invention to provide a method to manage passive and active data throughout the network, and offer an improved method and apparatus for storing and delivering information on the Internet.
A method to maintain statistics on a remote server. The method includes receiving said statistics from each client device coupled to remote server, said statistics being associated with data on said remote server, said receiving being performed either when a user accesses said data on said remote server or when collected statistics associated with said data previously downloaded into a cache on said each client device is uploaded to said remote server from said each client device; updating said statistics on said remote server in response to either a user access of said data on said remote server or a receipt of said collected statistics from said each client device; and downloading said updated statistics to said each client device.
A method for improving user perceived response time when a client device requests data from a server on a network. The method includes analyzing initial data requested from the server by one or more application programs running on the client device in order to identify references to various data on the server; assigning a weight to each said identified reference which represents a likelihood relative to the rest of said identified references that said various data identified by each said identified reference will be requested by an application program; and downloading said data identified by each said identified reference to the client device in anticipation of an actual request for the data by an application program, said downloading being performed for each said identified reference in order of decreasing weight, wherein the likelihood that said application program will request said various data is based on a user""s past usage of said application program and statistics supplied by a content provider.